public class Test {
    public static void main(String[] args) {

    }
    public boolean isPalindrome(String s) {//判断字符串是否为回文串（正着反着都一样）
        s = s.toLowerCase();//将字符串全部转化为小写字母
        int i = 0;//i下标指向首元素
        int j = s.length() - 1;//j下标指向字符串最后一个元素
        while (i < j) {//前提条件
            while (i < j && !isLetorNum(s.charAt(i))) {//当i不是字母数字字符时
                i++;
            }
            while (i < j && !isLetorNum(s.charAt(j))) {//当j不是字母数字字符时
                j++;
            }
            if (s.charAt(i) == s.charAt(j)) {//当i == j时
                i++;
                j--;
            } else {//只要有一次不相等则该字符串不是回文串
                return false;
            }
        }
        return true;
    }
    public boolean isLetorNum(char ch) {//判断字符串中的字符为字母数字字符
        if (ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'z') {//题目规定转换为小写字母
           return true;
        }
        return false;
    }
}
